package com.zb.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.zb.entity.WorkDispatchConditionVo;
import com.zb.entity.ZjWorkClientStrategyCondition;
import com.zb.vo.WorkClientStrategyConditionVo;

import java.util.List;

/**
 * <p>
 * 工单客服分派策略条件表 服务类
 * </p>
 *
 * @author WEN
 * @since 2023-09-27
 */
public interface ZjWorkClientStrategyConditionService extends IService<ZjWorkClientStrategyCondition> {

    /**
     * 新增、修改、删除客服分派条件
     * @param custAccId 商家ID
     * @param workClientStrategyId 工单客服分派策略表ID
     * @param conditionVos
     * @param ids
     */
    void save(Long custAccId, Long workClientStrategyId, List<WorkClientStrategyConditionVo> conditionVos, List<Long> ids);

    /**
     * 根据工单客服分派策略表ID获取父级条件名称
     * @param workClientStrategyIds 工单客服分派策略表ID
     * @return
     */
    List<ZjWorkClientStrategyCondition> getParentConditionByWorkClientStrategyIds(List<Long> workClientStrategyIds);

    /**
     * 根据工单客服分派策略表ID获取父级条件名称
     * @param workClientStrategyId
     * @return
     */
    List<WorkClientStrategyConditionVo> getParentConditionByWorkClientStrategyId(Long workClientStrategyId);

    /**
     * 根据工单客服分派策略表ID删除
     * @param workClientStrategyIds
     */
    void deleteBatchByWorkClientStrategyIds(List<Long> workClientStrategyIds);

    /**
     * 根据策略查询是否执行分配
     * @param workDispatchConditionVo
     * @return
     */
    boolean isExecuteDispatch(WorkDispatchConditionVo workDispatchConditionVo);
}
